package junior.db.service;

import junior.db.query.PageQueryArgs;
import junior.db.query.PageVO;
import junior.db.query.QueryArgs;

import java.util.List;

/**
 * @author wubo
 * @date 2024/9/5 18:25
 */
public interface IService<ID, PO, VO> {
    
    PageVO<VO> listPage(PageQueryArgs args);
    
    List<VO> list(QueryArgs args);
    
    VO getById(ID id);
    
    VO get(QueryArgs args);
    
    <T> T getForType(QueryArgs args, Class<T> type);
    
    <T> List<T> listForType(QueryArgs args, Class<T> type);
    
}
